home *** CD-ROM | disk | FTP | other *** search
Wrap
// GETINFO SCRIPTING // www.7arte.net(imagem pequena) //Script feito pelo O Guardiπo versπo 2.0 Beta 2 //23-02-2004 //03-03-2004 corrigido: a procura agora encontra os filmes na lingua original e em portugues //04-03-2004 corrigido: problema com espaτo em branco duraτπo //06-03-2004 corrigido: descriτ⌡es dos filmes que se encontrem em multilinha ja da para importar sem "cortes" //06-03-2004 corrigido: existia um erro por vezes nos actores que estß agora corrigido //17-03-2004 corrigido: mudei o anonymization.net para o triumphpc.com e este script ja funciona novamente //19-03-2004 corrigido: caso nπo houver comentarios o campo fica em branco //19-03-2004 adicionado: agora as capas dos filme sπo importadas apartir do site do Amazon (limitei-me a copiar a funτπo GetMoviePicture do script IMDB (large pic) e fiz umas pequenas alteraτ⌡es para ser compativel com este script) // atenτπo nπo funciona em todos os filme //19-03-2004 A listagem dos filme foi reestruturada, mas continuam a parecer filmes repetidos porque a procura Θ feita duas vezes, procura pelo nome original e procurar pelo nome traduzido. Talvez eu corriga esse bug mais tarde. //25-03-2004 a pontuaτπo foi corrigida ja aparece novamente e o valor nπo Θ truncado, mas sim arredondado //04-04-2004 Corrigido: Por vezes o nome do realizador nπo aparecia //04-04-2004 Agora os nomes dos filmes em PortuguΩs jß nπo aparecem todas em maiusculas //07-04-2004 Corrigido:Em alguns filme mais recente o nome em portugues aparecia com espaτo em branco antes do nome //07-05-2004 Corrigido: Devido a actualizaτ⌡es no 7 arte o meu script ja nπo funcionava (*************************************************** * For use with Ant Movie Catalog 3.4.0 * * www.antp.be/software/moviecatalog * * * * The source code of the script can be used in * * another program only if full credits to * * script author and a link to Ant Movie Catalog * * website are given in the About box or in * * the documentation of the program * * * * Please dont remove credits * * Reportem os erros para bruno_mga@hotmail.com * ***************************************************) program arte; const BaseAddress = 'www.7arte.net/'; ManualPictureSelect = True; ExternalPictures = False; var MovieName: string; function UpFirstLetterWord(texto:string):string; //Function Made By O Guardiπo var espaco:integer; sst:string; begin texto:=AnsiUpFirstLetter(AnsiLowerCase(texto)); repeat espaco:=Pos(' ',texto); sst:=AnsiUpperCase(Copy(texto,espaco+1,1)); texto:=Copy(texto,1,espaco-1)+'/|\'+sst+Copy(texto,espaco+2,length(texto)); until Pos(' ',texto)=0; texto := StringReplace(texto, '/|\', ' '); if Copy(texto,1,1)=' ' then//se a 1║ pos Θ espaτo texto:=Copy(texto,2,length(texto)); result:=texto; end; function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer; var i: Integer; begin result := -1; if StartAt < 0 then StartAt := 0; for i := StartAt to List.Count-1 do if Pos(Pattern, List.GetString(i)) <> 0 then begin result := i; Break; end; end; function HTMLRemove(Value: String): String; begin HTMLDecode(Value); HTMLRemoveTags(Value); Value := Trim(Value); result := Value; end; procedure AnalyzeFilmPage(Address: String); var Page : TStringList; Line, Value : string; LineNr, BeginPos, EndPos: Integer; AllTitles: TStringList; begin Page := TStringList.Create; Page.Text := GetPage('http://triumphpc.com/cgi-bin/nph-proxy.cgi/000000A/http/'+Address); SetField(fieldURL, Address); //para continuar deve ser diferente destas mensagens if (FindLine('SERVIDOR EM EXCESSO DE CARGA', Page, 0)<>-1) and (FindLine('POR FAVOR TENTE MAIS TARDE.', Page, 0)<>-1) then showmessage('Servidor encontra-se indisponivel.') else begin //nome traduzido do filme LineNr := FindLine('<FONT FACE="Arial,Helvetica"><FONT SIZE=+1>', Page, 0); Value := Page.GetString(LineNr); value:=HTMLRemove(value); Value:=UpFirstLetterWord(Value); SetField(fieldTranslatedTitle, Value); //nome original do filme value:= Page.GetString(LineNr+1); Value := HTMLRemove(Value); SetField(fieldOriginalTitle, Value); //pontuaτπo LineNr := FindLine('<FONT SIZE=-1 FACE="Arial,Helvetica"><B>', Page, 0); Value := Page.GetString(LineNr); value:=HTMLRemove(value); if (pos('.',value)<>-1) then BeginPos:=StrToInt(copy(value,3,1),0); if BeginPos>4 then value:=IntToStr(1+StrToInt(Copy(value,1,1),0)) else value:=Copy(value,1,1); SetField(fieldRating, Value); //realizador LineNr := FindLine('>Realizador:</', Page, 0); Value := HTMLRemove(Page.GetString(LineNr)); value:=Copy(value,13,length(value)); SetField(fieldDirector, Value); //actores Line:=''; // LineNr := FindLine('<B>╗</B> <a>', Page, 0); LineNr := FindLine('<B>Actores:</B><BR><FONT Size=-1>', Page, 0); lineNr:=lineNr+1; repeat value:=Page.GetString(LineNr); if line<>'' then line:=line+', '; // virgula entre cada nome Line:=line+Copy(HTMLRemove(value),3,length(value)); lineNr:=lineNr+1; value:=Page.GetString(LineNr); // until pos('<B>╗</B> <a>',value)=0; until pos('</FONT></TD>',value)<> 0; SetField(fieldActors, Line); //ano LineNr := FindLine('><B>Ano:</B>', Page, 0); value:=Copy(HTMLRemove(Page.GetString(LineNr)),6,length(value)); SetField(fieldYear, value); //duraτπo LineNr := FindLine('<B>Duraτπo:</B> <FONT SIze=-1>', Page, 0); value:=HTMLRemove(Page.GetString(LineNr)); Value := StringReplace(Value, 'Duraτπo: ', ''); Value := StringReplace(Value, ' minutos', ''); SetField(fieldLength, value); //genero LineNr := FindLine('<B>GΘnero:</B> <FONT SIze=-1>', Page, 0); value:=HTMLRemove(Page.GetString(LineNr)); Value := StringReplace(Value, 'GΘnero: ', ''); SetField(fieldCategory, value); //paφs LineNr := FindLine('<B>Paφs de Origem:</B> <FONT SIze=-1>', Page, 0); value:=HTMLRemove(Page.GetString(LineNr)); Value := StringReplace(Value, 'Paφs de Origem: ', ''); SetField(fieldCountry, value); //descriτπo LineNr := FindLine('<B>Sinopse:</B><BR>', Page, 0); if LineNr<>-1 then begin value:=''; repeat LineNr:=LineNr+1; value:=value+Page.GetString(LineNr); until Pos('</TD>', Page.GetString(LineNr)) <> 0; //ate encontrar o </Td> value:=HTMLRemove(value); Value := StringReplace(Value, ' [ www.7arte.net ]', ''); SetField(fieldDescription, value); end; // Get Picture LineNr := FindLine('/imagens/filmes/', Page, 0); if LineNr > -1 then begin value := Page.GetString(LineNr); BeginPos := pos('src="', value)+5; EndPos := pos('.jpg', value); if endpos=0 then EndPos := pos('.gif', value); Value :=copy(value, BeginPos,4+EndPos-BeginPos); GetPicture(Value, False); end; //obter imdb link LineNr := FindLine('imdb.com', Page, 0); if LineNr > -1 then begin value := Page.GetString(LineNr); beginpos:=pos('img width',value)-4; value:=Copy(value,1,beginpos); beginpos:=pos('href',value)+6; value:=Copy(value,beginpos,length(value)); Value := StringReplace(Value, 'http://triumphpc.com/cgi-bin/nph-proxy.cgi/000000A/http/', ''); value:='http://'+value; //imagem pequena imdb Page.Text := GetPage(value); // Picture - copiado do IMDB (pic) LineNr := FindLine('<img alt="cover" align="left" src="http://ia.imdb.com/media/imdb/', Page, 0); if LineNr < 0 then LineNr := FindLine('<img alt="cover" align="left" src="http://posters.imdb.com/', Page, 0); if LineNr < 0 then LineNr := FindLine('<img alt="cover" align="left" src="http://images.amazon.com/', Page, 0); if LineNr > -1 then begin Line := Page.GetString(LineNr); BeginPos := pos('src="', Line) + 4; Delete(Line, 1, BeginPos); EndPos := pos('"', Line); Value := copy(Line, 1, EndPos - 1); GetPicture(Value, False); end; end; end; end; procedure AnalyzePage(Address,Address2: string); var Page: TStringList; LineNr, StartPos, EndPos: Integer; Line: string; x:integer; MovieAddress, findMovieName,linedown : string; begin PickTreeClear; Page := TStringList.Create; Page.Text := GetPage(Address); if (pos('Resultados Encontrados', Page.Text)>0) then //search portuguese begin LineNr :=0; repeat LineNr := FindLine('/cgi-bin/f_filme.pl?codigo=', Page, LineNr); If LineNr >0 Then Begin Line := Page.GetString(LineNr); StartPos := pos('cgi-bin/f_filme.pl?codigo=', Line); EndPos := pos(')">',Line)-1; MovieAddress := copy(Line, StartPos, EndPos - StartPos); StartPos := EndPos + 15; StartPos := EndPos+4; endpos:=pos('</A><BR>',Line); Line:=Copy(Line,startpos,endpos); findmoviename:=HTMLRemove(Line); HTMLRemoveTags(FindMovieName); HTMLDecode(FindMovieName); PickTreeAdd(FindMovieName, BaseAddress + MovieAddress); LineNr := LineNr + 1; End; until (LineNr<1); end; Page.Text := GetPage(Address2); if (pos('Resultados Encontrados', Page.Text)>0) then //search portuguese begin LineNr :=0; repeat LineNr := FindLine('/cgi-bin/f_filme.pl?codigo=', Page, LineNr); If LineNr >0 Then Begin Line := Page.GetString(LineNr); StartPos := pos('cgi-bin/f_filme.pl?codigo=', Line); EndPos := pos(')">',Line)-1; MovieAddress := copy(Line, StartPos, EndPos - StartPos); StartPos := EndPos + 15; StartPos := EndPos+4; endpos:=pos('</A><BR>',Line); Line:=Copy(Line,startpos,endpos); findmoviename:=HTMLRemove(Line); HTMLRemoveTags(FindMovieName); HTMLDecode(FindMovieName); PickTreeAdd(FindMovieName, BaseAddress + MovieAddress); LineNr := LineNr + 1; End; until (LineNr<1); if PickTreeExec(Address) then begin AnalyzeFilmPage(Address); end; Page.Free; end; DisplayResults; end; begin PickListClear; MovieName := GetField(fieldOriginalTitle); if Input('Import from www.7arte.net', 'Enter the title of the movie:', MovieName) then begin //espaτo nπo sπo permitidos MovieName := StringReplace(MovieName, ' ', '%20'); // AnalyzePage('http://babelfish.altavista.com/babelfish/urltrurl?lp=zh_en&url=www.7arte.net/cgi-bin/arquivos/search_orig.pl?proc='+MovieName,'http://babelfish.altavista.com/babelfish/urltrurl?lp=zh_en&url=www.7arte.net/cgi-bin/arquivos/search.pl?proc='+MovieName); AnalyzePage('http://triumphpc.com/cgi-bin/nph-proxy.cgi/000000A/http/www.7arte.net/cgi-bin/arq_search_orig.pl?letra=&proc='+MovieName,'http://triumphpc.com/cgi-bin/nph-proxy.cgi/000000A/http/www.7arte.net/cgi-bin/arq_search.pl?proc='+MovieName); end; end.